import App from '@/App.vue'
import base from '@/utils/baseURL.js'

// 混入文件
const minxins = {
	data() {
		return {
			statusBarHeight: App.globalData.statusBarHeight, // 原生顶部状态栏高度
			menuBarHeight: App.globalData.menuBarHeight, // 自定义顶部功能栏高度
			menuHeight: App.globalData.menuHeight, // 胶囊高度
			imageURL: base.imageURL, // 背景图片请求路径
			baseURL: base.baseURL, // 请求根路径
			minStamp: new Date(`${(new Date().getFullYear())-100}-01-01`).valueOf(), // 选择最小时间戳
			maxStamp: new Date().valueOf() // 选择最大时间戳
		}
	},

	methods: {
		// 获取用户信息
		getUserInfo() {
			this.$http.getUserInfo().then(res => {
				uni.setStorageSync("userInfo", res)
				let status = 'user'
				switch (Number(res.identity)) {
					case 0:
						status = 'user'
						break;
					case 1:
						status = 'student'
						break;
					case 2:
						status = 'teacher'
						break;
					case 3:
						status = 'org'
						break;
				}
				// 储存用户身份
				this.$store.commit("statusChange", status)
				uni.setStorageSync("status", status)
				// 返回上一页
				// uni.navigateBack()
				return true
			})
		},
		switchTab(url) {
			uni.switchTab({
				url
			})
		},
		// 路由跳转
		navigateTo(url) {
			uni.navigateTo({
				url
			})
		},
		// 返回上一页
		navigateBack() {
			uni.navigateBack()
		},
		// 获取用户登录状态
		login() {
			uni.login({
				provider: 'weixin',
				onlyAuthorize: true,
				success: (res) => {
					this.$http.getSessionKey({
						code: res.code
					}).then(suss => {
						let {
							session_key,
							openid
						} = suss
						uni.setStorageSync("session", {
							session_key,
							openid
						})
					}).catch(err => {
						console.log("err", err);
					})
				}
			})
		},
		// 跳转登录页
		toLogin() {
			uni.navigateTo({
				url: "/pages/pages_public/login"
			})
		},
		// 创建订单
		createOrder(param) {
			// 订单类型：1 惠民卡，商品总价，订单金额
			return new Promise((resolve, reject) => {
				this.$http.createOrder(param)
					.then(res => {
						let {
							id,
							order_sn,
							goods_amount
						} = res
						// 创建订单成功后拉起支付
						this.prePay({
							order_sn,
							payment: 'wechat'
						}, id, resolve, reject)

					})
			})
		},
		// 拉起预支付
		prePay(param, id, resolve, reject) {
			this.$http.prePay(param).then(res => {
				let {
					pay_data
				} = res
				// 预支付订单创建成功 拉起微信支付
				uni.requestPayment({
					provider: 'alipay',
					...pay_data,
					success: payRes => {
						// 付款成功后调用
						resolve(id)
					},
					fail: err => {
						// 付款失败后调用
						reject({
							err,
							id
						})
					}
				})
			})
		},
	}
}
export default minxins
